// 冒泡排序就是两两比较，较大的的往后移

function bubbleSort(arr) {
    for (let i = 0; i < arr.length - 1; i++) {//第一层循环是控制总的循环次数//举例可得-1
        for (let j = 0; j < arr.length - 1 - i; j++) {//长度-i是因为后面的i个已经是最大的了，不需要再次循环
            if (arr[j] >= arr[j + 1]) {
                let temp = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = temp
            }
        }

    }
    return arr
}
console.log(bubbleSort([1, 2, 1, 2, 1, 4, 3]));

// 优化
// 加入一个标识符，如果已经排好顺序了，就可以直接跳出程序
// 因为如果在一轮中的比较都没有进行，说明已经排好序了
function bubbleSort2(arr){
    for(let i=0;i<arr.length-1;i++){
        let ok=true
        for(let j=0;j<arr.length-1-i;j++){
            if(arr[j]>arr[j+1]){
                let temp=arr[j]
                arr[j]=arr[j+1]
                arr[j+1]=temp
                ok=false
            }
        }
        if(ok){
            break
        }
    }
    return arr
}
console.log(bubbleSort2([1, 2, 1, 2, 1, 4, 3]));
